package org.wak.main
{
	import org.wak.action.ActionsManager;
	import org.wak.character.CharactersManager;
	import org.wak.dialog.DialogManager;
	import org.wak.gui.GuiManager;
	import org.wak.inventory.InventoryManager;
	import org.wak.main.text.IStringSet;
	import org.wak.scene.SceneManager;
	
	/**
	 * Base class to control the puzzle flow. 
	 * 
	 */	
	public class PuzzleControllerBase
	{
		// Managers: //
		
		// The Scene manager.
		protected var mSceneMngr:SceneManager = null ;
		
		// The Characters manager.
		protected var mCharactersMngr:CharactersManager = null ;
		
		// inventory items manager
		protected var mInventoryMngr:InventoryManager = null ;
		
		// the actions manager
		protected var mActionsMngr:ActionsManager = null ;
		
		// The graphic user interface manager
		protected var mGuiMngr:GuiManager = null ;
		
		// the dialog manager.
		protected var mDialogMngr:DialogManager = null ;
		
		///////////////
		
		// the resource manager class of the game
		protected var mResourceManager:Class ;
		
		// the text manager class for strings
		protected var mTextManager:IStringSet ; 
		
		public function PuzzleControllerBase()
		{
			mSceneMngr = AdventureMaster.SceneMngr ;
		
			mCharactersMngr = AdventureMaster.CharactersMngr ;
			
			mInventoryMngr = AdventureMaster.InventoryItemsMngr ;
			
			mActionsMngr = AdventureMaster.ActionsMngr ;
			
			mGuiMngr = AdventureMaster.GuiMngr ;
			
			mDialogMngr = AdventureMaster.DialogMngr ;
			
			mResourceManager = AdventureMaster.Resources ;
			
			mTextManager = AdventureMaster.Texts ; 
		}
		
		public function EndOfAction():void
		{
			mActionsMngr.EndOfAction() ;
		}

	}
}